<?php

class ASolicitudLiquidosUsuario {

    public function __construct(){
	}
	public function generarDespacho(EFacade & $facade)
	{
		$docSLU = & $facade->getDocumentRoot();
		$workflow = & $facade->getWorkflow();
		//$OMCh = & $docSLU->ordenMCheckListPrincipal;
		$usuario=NULL;
		//echo '<hr> >> Slu ',$docSLU;
		$ezpdo_= getManager();

		$ordenDespahoL = $facade->session->create('DOrdenDespachoLiquidos');		
		$ordenDespahoL->solicitudLiquido = $docSLU;
		
		////asociar la informacion de todos lo liquidos solicitados a esta ODL.
		foreach($docSLU->listaLiquidos as $liquido){
		
			$listaLS = $ezpdo_->create('MListaLiquidosSolicitud');
			$listaLS->producto = $liquido->producto;
			$ordenDespahoL->listaLiquidosSolicitud[] = $listaLS;
		}
		
		$role=NULL;
		$newEfacade =& EFacade :: initWorkflow($facade->session, $ordenDespahoL, & $role);
		$transSet = & EFacade :: getCurrentTransSetAuto($newEfacade->getWorkflow(),3);//tipo process
		$trans = $transSet->getTransByName('t1');
		$usuario=NULL;
		
		$newEfacade->fireTrans($trans, $usuario, "Crear",TRUE);
		//echo "<br><br>la wt es: ";
		$ordenDespahoL->epSetDirty(TRUE);// marcar el documento para que sea salvado los cambios
		$newEfacade->saveWorkflow();
		$ordenDespahoL->commit();//echo "<br><br> es:1 ";
		$ordenDespahoL->numero = $ordenDespahoL->getDocumentNumber();
		$ordenDespahoL->commit();
		//echo "<br><br>es: ",$ordenDespahoL;
		unset($newEfacade);
		
		$docSLU->epSetDirty(TRUE);
		
		$workflowsOSL = & $facade->getWorkflow();
		$workflowsOSL->epSetDirty(TRUE);

		$transSetOSL = & EFacade :: getCurrentTransSetAuto($workflowsOSL, /* MTrans :: $TYPE_AUTO_AGENT */ 2);
		$listaWT= &$workflowsOSL->getWorkTransList();

		$transOSL = $transSetOSL->getTransByName('t3');
		$facade->fireTrans($transOSL,$usuario,'Creacion de Ordenes', TRUE);	
			
		
	}
}
?>